/**
 * @Copyrights: 
 * 未经许可不可私自修改任何代码以及图片资源等. 
 * 如有任何意见或这建议，请按如下联系方式与作者联系:EMAIL: yanghf1985@hotmail.com, QQ: 283611129
 */
package com.zeen.wima.proxy;

import java.util.ArrayList;

import org.apache.http.NameValuePair;

import com.zeen.wima.common.HttpCallback;
import com.zeen.wima.common.HttpRequest;

/**
 * @author Jacky
 * @description: 通过此类与服务器更新，提取数据. 数据更新后通过消息通知 注册的视图.
 *               此类同时提供本地存储功能，有的数据需要从服务器获得，有的则只需调用 本地的缓存资源即可.
 */
public class ProxyBase {

	
	protected String url = "http://zen-mobi.com/iphone/action.handler.php";

	/**
	 * 发送请求到服务器
	 * 
	 * @param url
	 * @param cmd
	 * @param params
	 * @param sessionId
	 */
	final protected void sendRequest(String url, String cmd,
			ArrayList<NameValuePair> params, String sessionId,
			HttpCallback callback) {
		new HttpRequest().send(url, cmd, params, sessionId, callback);
	}


	ArrayList<IObserver> _observers = new ArrayList<IObserver>();

	/**
	 * 注册observer
	 * 
	 * @param o
	 * @return
	 */
	final public boolean register(IObserver o) {
		if (_observers.indexOf(o) >= 0)
			return false;
		_observers.add(o);
		return true;
	}

	/**
	 * 注销注册的视图
	 * 
	 * @param v
	 * @return
	 */
	final public boolean deregister(IObserver o) {
		if (_observers.indexOf(o) < 0)
			return false;
		return _observers.remove(o);
	}

	/**
	 * 发送消息通知注册的视图
	 * 
	 * @param m
	 */
	final protected void notifyObservers(int what, Object extr) {
		for (int i = 0; i < _observers.size(); i++) {
			_observers.get(i).onNotify(what, extr);
		}
	}
}
